<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 以下是一个医疗相关的 JavaScript 实操题，需要使用 forEach 和 filter 方法：
假设有一个包含多个病人信息的数组 patients，每个病人对象都有以下属性：
```js
{
  id: string,
  name: string,
  age: number,
  gender: string,
  bloodPressure: {
    systolic: number,
    diastolic: number
  },
  hasDiabetes: boolean
}
```
请编写一个函数 getHighBloodPressurePatients(patients, systolicThreshold, diastolicThreshold)，该函数接受三个参数：
- patients: 一个包含多个病人信息的数组，每个病人对象的属性如上所示。
- systolicThreshold: 血压收缩压的阈值，所有收缩压高于该阈值的病人都应该被筛选出来。
- diastolicThreshold: 血压舒张压的阈值，所有舒张压高于该阈值的病人都应该被筛选出来。
该函数应该返回一个数组，其中包含所有血压高于阈值的病人对象。返回的数组应该按照病人姓名的字母顺序排序
请使用 forEach 和 filter 方法来实现该函数。 -->
    <script>
      const patients = [
        {
          id: '001',
          name: 'Alice',
          age: 34,
          gender: 'F',
          bloodPressure: {
            systolic: 120,
            diastolic: 80,
          },
          hasDiabetes: false,
        },
        {
          id: '002',
          name: 'Bob',
          age: 47,
          gender: 'M',
          bloodPressure: {
            systolic: 140,
            diastolic: 90,
          },
          hasDiabetes: true,
        },
        {
          id: '003',
          name: 'Charlie',
          age: 55,
          gender: 'M',
          bloodPressure: {
            systolic: 130,
            diastolic: 95,
          },
          hasDiabetes: false,
        },
      ]

      function getHighBloodPressurePatients(
        patients,
        systolicThreshold,
        diastolicThreshold
      ) {
        const arr = patients.filter(function (item) {
          return (
            item.bloodPressure.systolic > systolicThreshold &&
            item.bloodPressure.diastolic > diastolicThreshold
          )
        })
        // 得到了筛选出来的字符串
        // 按照病人的首字母进行排序
        arr.sort((a, b) => {
          if (a.name < b.name) {
            return -1 // 返回负数表示a在b之前
          }
          if (a.name > b.name) {
            return 1 // 返回正数表示a在b之后
          }
          return 0 // 返回0表示a和b相等
        })
        return arr
      }
      const highBloodPressurePatients = getHighBloodPressurePatients(
        patients,
        125,
        85
      )
      console.log(highBloodPressurePatients)
      //
    </script>
  </body>
</html>
